<!DOCTYPE html>
<html lang="en">
    <head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="format-detection" content="telephone=no" />

  <title>
    13|答疑（一）无法模拟出RES中断的问题，怎么办？ | 迪克猪的博客
  </title>

  
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
  <link rel="manifest" href="/manifest.json" />
  <meta name="theme-color" content="#ffffff" />

  
  <link
    rel="stylesheet"
    href="https://unpkg.com/modern-normalize@0.6.0/modern-normalize.css"
  />

  
  
  
  
  <link rel="stylesheet" href="https://zsy619.github.io/style.min.f7761d111b74dd5c07f0111decee92938c12abc42e0fd319e1a07483e248b54e.css" integrity="sha256-93YdERt03VwH8BEd7O6Sk4wSq8QuD9MZ4aB0g&#43;JItU4=" />

  
  
    
  
</head>

    <body>
        <header id="header">
  <div class="header_container">
    <h1 class="sitetitle">
      <a href="https://zsy619.github.io" title="迪克猪的博客">迪克猪的博客</a>
    </h1>
    <nav class="navbar">
      <ul>
        <li><a href="https://zsy619.github.io">Home</a></li>
        
          <li>
            <a href="/post/">
              
              <span>LINUX性能优化</span>
            </a>
          </li>
        
          <li>
            <a href="/csapp/">
              
              <span>深入理解计算机系统_第三版</span>
            </a>
          </li>
        
          <li>
            <a href="/golang/">
              
              <span>golang</span>
            </a>
          </li>
        
          <li>
            <a href="/docker/">
              
              <span>容器</span>
            </a>
          </li>
        
          <li>
            <a href="/flutter/">
              
              <span>Flutter</span>
            </a>
          </li>
        
          <li>
            <a href="/know/">
              
              <span>知识点</span>
            </a>
          </li>
        
          <li>
            <a href="/categories/">
              
              <span>目录</span>
            </a>
          </li>
        
          <li>
            <a href="/about/">
              
              <span>关于</span>
            </a>
          </li>
        
        <li class="hide-sm"><a href="https://zsy619.github.io/index.xml" type="application/rss+xml">RSS</a></li>
      </ul>
    </nav>
  </div>
</header>

        
<section id="main">
  <article class="post content">
    <h2 class="title">13|答疑（一）无法模拟出RES中断的问题，怎么办？</h2>
    <div class="post_content">
      <h3 id="问题-1性能工具版本太低导致指标不全">问题 1：性能工具版本太低，导致指标不全</h3>
<p><img src="../../images/20200602-1222-59.png" alt=""></p>
<p>性能分析的学习，建议要用最新的性能工具来学。新工具有更全面的指标，更容易上手分析。这个绝对的优势，可以让你更直观地得到想要的数据，也不容易让你打退堂鼓。</p>
<p>最好试着去理解性能工具的原理，或者熟悉了使用方法后，再回过头重新学习原理。这样，即使是在无法安装新工具的环境中，你仍然可以从 proc 文件系统或者其他地方，获得同样的指标，进行有效的分析。</p>
<h3 id="问题-2使用-stress-命令无法模拟-iowait-高的场景">问题 2：使用 stress 命令，无法模拟 iowait 高的场景</h3>
<p><img src="../../images/20200602-1223-11.png" alt=""></p>
<p><img src="../../images/20200602-1223-19.png" alt=""></p>
<p>可以运行下面的命令，来模拟 iowait 的问题：</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># -i的含义还是调用sync，而—hdd则表示读写临时文件</span>
$ stress-ng -i <span style="color:#ae81ff">1</span> --hdd <span style="color:#ae81ff">1</span> --timeout <span style="color:#ae81ff">600</span>
</code></pre></div><h3 id="问题-3无法模拟出-res-中断的问题">问题 3：无法模拟出 RES 中断的问题</h3>
<p><img src="../../images/20200602-1224-26.png" alt=""></p>
<p>分析：重调度中断是调度器用来分散任务到不同 CPU 的机制，也就是可以唤醒空闲状态的 CPU ，来调度新任务运行，而这通常借助处理器间中断（Inter-Processor Interrupts，IPI）来实现。</p>
<p>：：：：这个中断在单核（只有一个逻辑 CPU）的机器上当然就没有意义了，因为压根儿就不会发生重调度的情况。</p>
<p>拿 pidstat 中的 %wait 跟 top 中的 iowait% （缩写为 wa）对比，其实这是没有意义的，因为它们是完全不相关的两个指标。</p>
<ul>
<li>pidstat 中， %wait 表示进程等待 CPU 的时间百分比。</li>
<li>top 中 ，iowait% 则表示等待 I/O 的 CPU 时间百分比。</li>
</ul>
<p>差异化：：：不同版本的 sysbench 运行参数也不是完全一样的</p>
<ul>
<li>Ubuntu 18.04
<ul>
<li>$ sysbench &ndash;threads=10 &ndash;max-time=300 threads run</li>
</ul>
</li>
<li>Ubuntu 16.04
<ul>
<li>$ sysbench &ndash;num-threads=10 &ndash;max-time=300 &ndash;test=threads run</li>
</ul>
</li>
</ul>
<h3 id="问题-4无法模拟出-io-性能瓶颈以及-io-压力过大的问题">问题 4：无法模拟出 I/O 性能瓶颈，以及 I/O 压力过大的问题</h3>
<p><img src="../../images/20200602-1230-18.png" alt=""></p>
<p><img src="../../images/20200602-1231-33.png" alt=""></p>
<p><img src="../../images/20200602-1231-44.png" alt=""></p>
<h3 id="问题-5性能工具如-vmstat输出中第一行数据跟其他行差别巨大">问题 5：性能工具（如 vmstat）输出中，第一行数据跟其他行差别巨大</h3>
<p><img src="../../images/20200602-1233-03.png" alt=""></p>
<p>：：：在碰到直观上解释不了的现象时，要第一时间去查命令手册。如 man vmstat</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-txt" data-lang="txt">The first report produced gives averages since the last reboot.  Additional reports give information on a sam‐ 
pling period of length delay.  The process and memory reports are instantaneous in either case. 
</code></pre></div><p>也就是说，第一行数据是系统启动以来的平均值，其他行才是你在运行 vmstat 命令时，设置的间隔时间的平均值。另外，进程和内存的报告内容都是即时数值。</p>

    </div>
    <div class="info post_meta">
      <time datetime=2020-06-02T12:18:53&#43;0800 class="date">Tuesday, June 2, 2020</time>
      
        <ul class="tags">
        
          <li> <a href="https://zsy619.github.io/tags/linux%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96">linux性能优化</a> </li>
        
          <li> <a href="https://zsy619.github.io/tags/linux">linux</a> </li>
        
        </ul>
      
      
    </div>
    <div class="clearfix"></div>
  </article>
  
    <div class="other_posts">
      
      <a href="https://zsy619.github.io/post/12%E5%A5%97%E8%B7%AF%E7%AF%87cpu-%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%9A%84%E5%87%A0%E4%B8%AA%E6%80%9D%E8%B7%AF/" class="prev">12|套路篇--CPU性能优化的几个思路</a>
      
      
      <a href="https://zsy619.github.io/post/14%E7%AD%94%E7%96%91%E4%BA%8C%E5%A6%82%E4%BD%95%E7%94%A8perf%E5%B7%A5%E5%85%B7%E5%88%86%E6%9E%90java%E7%A8%8B%E5%BA%8F/" class="next">14|答疑（二）如何用perf工具分析Java程序？</a>
      
    </div>
    <aside id="comments">
</aside>

  
</section>

        <a id="back_to_top" title="Go To Top" href="#">
  <span>
    <svg viewBox="0 0 24 24">
      <path fill="none" d="M0 0h24v24H0z"></path>
      <path d="M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z"></path>
    </svg>
  </span>
</a>

        <footer id="footer">
  <p>
    <span>&copy; 2021 <a href="https://zsy619.github.io" title="迪克猪的博客">迪克猪的博客</a> </span>
    <span>Built with <a rel="nofollow" target="_blank" href="https://gohugo.io">Hugo</a></span>
    <span>Theme by <a rel="nofollow" target="_blank" href="https://github.com/wayjam/hugo-theme-mixedpaper">WayJam</a></span>
  </p>

  <script src="https://zsy619.github.io/js/main.min.8b182175f5874aeed0acc0979345c98d4bde22208ec4f36cc1d6e3102acb4b10.js" integrity="sha256-ixghdfWHSu7QrMCXk0XJjUveIiCOxPNswdbjECrLSxA=" crossorigin="anonymous" async></script>
</footer>

    </body>
</html>
